ggplot2: Basics

ggplot2: Das Paket


ggplot2 gehört zum tidyverse

# install.packages("tidyverse")
library(tidyverse)


… kann aber natürlich auch seperat geladen werden:

# install.packages("ggplot2")
library(ggplot2)

The Big picture

Komponenten

  1. Daten.
  2. Aesthetic mapping zwischen Daten und visuellen Eigenschaften.
  3. Layer(s) zum rendern der Daten.

Die Daten

Wir nutzen Daten von Gapminder.

Gapminder sammelt diverse Indikatoren über viele Jahre aus allen Ländern weltweit, z.B. Lebenserwartung, GDP, CO2-Verbrauch und viele mehr.

Bekannt sind vor allem die Bubble-Plots.


Die Daten

Zuerst schauen wir uns nur eins der Jahre genauer an, und zwar nur für die Länder im Datensatz:

gapminder_dat <- gapminder_dat_full %>% 
  filter(time == "2020", !is.na(country)) 

Einen ggplot bauen

Start: ggplot()

1. Daten

ggplot(data = gapminder_dat)

2. Aesthetic mapping




Verknüpfen von Spalten im Datensatz mit visuellen Eigenschaften:

mapping = aes()


Die wichtigsten Aestetics
Argument Aesthetic
x x-Achse
y y-Achse
color Farbe
fill Füllfarbe
shape Form
size Größe
alpha Transparenz
group Gruppe

Umfangreicherer Überblick über mögliche Aestethics.

Aesthetic mapping: Achsen

ggplot(
  data = gapminder_dat,
  mapping = aes(x = pop, y = co2_cons)
)

3. Geometric Layers




Verschiedene Layers (geoms) werden übereinandergelegt:

  geom_<layer1>() + 
  geom_<layer2>() + 
  ...


Die wichtigsten Layers
Argument Aesthetic
geom_point() Punkte
geom_line() Linien
geom_histogram() Histogramm
geom_text() Text
geom_boxplot() Boxplot

Umfangreicherer Überblick über mögliche Geoms.

Layers: Punkte

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point()

Mehr Aesthetics!

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons, 
    color = world_6region
  )
) +
  geom_point() 

Mehr Layers!

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons, 
    color = world_6region
  )
) +
  geom_point() +
  geom_smooth()

Aesthetics: Möglichkeiten

Aesthetics können auf verschiedene Arten definiert werden:

Für alle Layer

ggplot(
  data = gapminder_dat,
  aes(
    x = pop,
    y = co2_cons,
    color = world_6region
  )
) +
  geom_point() +
  geom_smooth()

Für spezifische Layer

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point(aes(color = world_6region)) +
  geom_smooth()

Als Setting

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point(color = "#F4BA02") +
  geom_smooth()

Labels

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point() +
  geom_smooth() +
  labs(
    title = "Größere Bevölkerung führt zu mehr CO2-Ausstoß!",
    subtitle = "CO2-Ausstoß diverser Länder in 2020",
    x = "Bevölkerungzahl",
    y = "CO2-Ausstoß in Tonnen"
  )

Style deinen Plot: Themes

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point() +
  geom_smooth() +
  labs(
    title = "Größere Bevölkerung führt zu mehr CO2-Ausstoß!",
    subtitle = "CO2-Ausstoß diverser Länder in 2020",
    x = "Bevölkerungzahl",
    y = "CO2-Ausstoß in Tonnen"
  ) +
  theme_classic()

Übung

Abspeichern

Farben

https://questionsindataviz.com/2023/12/29/what-makes-a-truly-terrible-map/